package com.gy.boot.common.util;

import java.util.HashMap;
import java.util.Map;

/**
 * 身份证号 籍贯地区 码表
 * */
public class IdCardCityUtil {

    /**
     * 通过 身份证号 获取 城市
     * */
    public static String getCityByID(String ID) {
        boolean isID = ID.length() == 18 || ID.length() == 15;
        if (!isID) {
            return null;
        }
        String code6 = ID.substring(0, 6);
        String city = cityCodes.get(code6);
        if (city != null) {
            return city;
        }
        String code4 = ID.substring(0, 4);
        city = cityCodes.get(code4);
        if (city != null) {
            return city;
        }
        String code2 = ID.substring(0, 2);
        city = cityCodes.get(code2);
        return city;
    }


    private static Map<String, String> cityCodes = new HashMap<>();
    static {
        cityCodes.put("11", "北京");
        cityCodes.put("110101", "北京 东城区");
        cityCodes.put("110102", "北京 西城区");
        cityCodes.put("110103", "北京 崇文区");
        cityCodes.put("110104", "北京 宣武区");
        cityCodes.put("110105", "北京 朝阳区");
        cityCodes.put("110106", "北京 丰台区");
        cityCodes.put("110107", "北京 石景山区");
        cityCodes.put("110108", "北京 海淀区");
        cityCodes.put("110109", "北京 门头沟区");
        cityCodes.put("110111", "北京 房山区");
        cityCodes.put("110112", "北京 通州区");
        cityCodes.put("110113", "北京 顺义区");
        cityCodes.put("110114", "北京 昌平区");
        cityCodes.put("110115", "北京 大兴区");
        cityCodes.put("110116", "北京 怀柔区");
        cityCodes.put("110117", "北京 平谷区");
        cityCodes.put("110228", "北京 密云县");
        cityCodes.put("110229", "北京 延庆县");

        cityCodes.put("12", "天津");
        cityCodes.put("120100", "天津 市辖区");
        cityCodes.put("120101", "天津 和平区");
        cityCodes.put("120102", "天津 河东区");
        cityCodes.put("120103", "天津 河西区");
        cityCodes.put("120104", "天津 南开区");
        cityCodes.put("120105", "天津 河北区");
        cityCodes.put("120106", "天津 红桥区");
        cityCodes.put("120107", "天津 塘沽区");
        cityCodes.put("120108", "天津 汉沽区");
        cityCodes.put("120109", "天津 大港区");
        cityCodes.put("120110", "天津 东丽区");
        cityCodes.put("120111", "天津 西青区");
        cityCodes.put("120112", "天津 津南区");
        cityCodes.put("120113", "天津 北辰区");
        cityCodes.put("120114", "天津 武清区");
        cityCodes.put("120115", "天津 宝坻区");
        cityCodes.put("120221", "天津 宁河县");
        cityCodes.put("120223", "天津 静海县");
        cityCodes.put("120225", "天津 蓟县");

        cityCodes.put("13", "河北");
        cityCodes.put("1301", "河北 石家庄");
        cityCodes.put("130101", "河北 石家庄 市辖区");
        cityCodes.put("130102", "河北 石家庄 长安区");
        cityCodes.put("130103", "河北 石家庄 桥东区");
        cityCodes.put("130104", "河北 石家庄 桥西区");
        cityCodes.put("130105", "河北 石家庄 新华区");
        cityCodes.put("130107", "河北 石家庄 井陉矿区");
        cityCodes.put("130108", "河北 石家庄 裕华区");
        cityCodes.put("130121", "河北 石家庄 井陉县");
        cityCodes.put("130123", "河北 石家庄 正定县");
        cityCodes.put("130124", "河北 石家庄 栾城县");
        cityCodes.put("130125", "河北 石家庄 行唐县");
        cityCodes.put("130126", "河北 石家庄 灵寿县");
        cityCodes.put("130127", "河北 石家庄 高邑县");
        cityCodes.put("130128", "河北 石家庄 深泽县");
        cityCodes.put("130129", "河北 石家庄 赞皇县");
        cityCodes.put("130130", "河北 石家庄 无极县");
        cityCodes.put("130131", "河北 石家庄 平山县");
        cityCodes.put("130132", "河北 石家庄 元氏县");
        cityCodes.put("130133", "河北 石家庄 赵县");
        cityCodes.put("130181", "河北 石家庄 辛集市");
        cityCodes.put("130182", "河北 石家庄 藁城市");
        cityCodes.put("130183", "河北 石家庄 晋州市");
        cityCodes.put("130184", "河北 石家庄 新乐市");
        cityCodes.put("130185", "河北 石家庄 鹿泉市");

        cityCodes.put("1302", "河北 唐山");
        cityCodes.put("130201", "河北 唐山 市辖区");
        cityCodes.put("130202", "河北 唐山 路南区");
        cityCodes.put("130203", "河北 唐山 路北区");
        cityCodes.put("130204", "河北 唐山 古冶区");
        cityCodes.put("130205", "河北 唐山 开平区");
        cityCodes.put("130206", "河北 唐山 新区");
        cityCodes.put("130221", "河北 唐山 丰润县");
        cityCodes.put("130223", "河北 唐山 滦县");
        cityCodes.put("130224", "河北 唐山 滦南县");
        cityCodes.put("130225", "河北 唐山 乐亭县");
        cityCodes.put("130227", "河北 唐山 迁西县");
        cityCodes.put("130229", "河北 唐山 玉田县");
        cityCodes.put("130230", "河北 唐山 唐海县");
        cityCodes.put("130281", "河北 唐山 遵化市");
        cityCodes.put("130282", "河北 唐山 丰南市");
        cityCodes.put("130283", "河北 唐山 迁安市");

        cityCodes.put("1303", "河北 秦皇岛");
        cityCodes.put("130301", "河北 秦皇岛 市辖区");
        cityCodes.put("130302", "河北 秦皇岛 海港区");
        cityCodes.put("130303", "河北 秦皇岛 山海关区");
        cityCodes.put("130304", "河北 秦皇岛 北戴河区");
        cityCodes.put("130321", "河北 秦皇岛 青龙满族自治县");
        cityCodes.put("130322", "河北 秦皇岛 昌黎县");
        cityCodes.put("130323", "河北 秦皇岛 抚宁县");
        cityCodes.put("130324", "河北 秦皇岛 卢龙县");

        cityCodes.put("1304", "河北 邯郸");
        cityCodes.put("130401", "河北 邯郸 市辖区");
        cityCodes.put("130402", "河北 邯郸 邯山区");
        cityCodes.put("130403", "河北 邯郸 丛台区");
        cityCodes.put("130404", "河北 邯郸 复兴区");
        cityCodes.put("130406", "河北 邯郸 峰峰矿区");
        cityCodes.put("130421", "河北 邯郸 邯郸县");
        cityCodes.put("130423", "河北 邯郸 临漳县");
        cityCodes.put("130424", "河北 邯郸 成安县");
        cityCodes.put("130425", "河北 邯郸 大名县");
        cityCodes.put("130426", "河北 邯郸 涉县");
        cityCodes.put("130427", "河北 邯郸 磁县");
        cityCodes.put("130428", "河北 邯郸 肥乡县");
        cityCodes.put("130429", "河北 邯郸 永年县");
        cityCodes.put("130430", "河北 邯郸 邱县");
        cityCodes.put("130431", "河北 邯郸 鸡泽县");
        cityCodes.put("130432", "河北 邯郸 广平县");
        cityCodes.put("130433", "河北 邯郸 馆陶县");
        cityCodes.put("130434", "河北 邯郸 魏县");
        cityCodes.put("130435", "河北 邯郸 曲周县");
        cityCodes.put("130481", "河北 邯郸 武安市");

        cityCodes.put("1305", "河北 邢台");
        cityCodes.put("130501", "河北 邢台 市辖区");
        cityCodes.put("130502", "河北 邢台 桥东区");
        cityCodes.put("130503", "河北 邢台 桥西区");
        cityCodes.put("130521", "河北 邢台 邢台县");
        cityCodes.put("130522", "河北 邢台 临城县");
        cityCodes.put("130523", "河北 邢台 内丘县");
        cityCodes.put("130524", "河北 邢台 柏乡县");
        cityCodes.put("130525", "河北 邢台 隆尧县");
        cityCodes.put("130526", "河北 邢台 任县");
        cityCodes.put("130527", "河北 邢台 南和县");
        cityCodes.put("130528", "河北 邢台 宁晋县");
        cityCodes.put("130529", "河北 邢台 巨鹿县");
        cityCodes.put("130530", "河北 邢台 新河县");
        cityCodes.put("130531", "河北 邢台 广宗县");
        cityCodes.put("130532", "河北 邢台 平乡县");
        cityCodes.put("130533", "河北 邢台 威县");
        cityCodes.put("130534", "河北 邢台 清河县");
        cityCodes.put("130535", "河北 邢台 临西县");
        cityCodes.put("130581", "河北 邢台 南宫市");
        cityCodes.put("130582", "河北 邢台 沙河市");

        cityCodes.put("1306", "河北 保定");
        cityCodes.put("130601", "河北 保定 市辖区");
        cityCodes.put("130602", "河北 保定 新市区");
        cityCodes.put("130603", "河北 保定 北市区");
        cityCodes.put("130604", "河北 保定 南市区");
        cityCodes.put("130621", "河北 保定 满城县");
        cityCodes.put("130622", "河北 保定 清苑县");
        cityCodes.put("130623", "河北 保定 涞水县");
        cityCodes.put("130624", "河北 保定 阜平县");
        cityCodes.put("130625", "河北 保定 徐水县");
        cityCodes.put("130626", "河北 保定 定兴县");
        cityCodes.put("130627", "河北 保定 唐县");
        cityCodes.put("130628", "河北 保定 高阳县");
        cityCodes.put("130629", "河北 保定 容城县");
        cityCodes.put("130630", "河北 保定 涞源县");
        cityCodes.put("130631", "河北 保定 望都县");
        cityCodes.put("130632", "河北 保定 安新县");
        cityCodes.put("130633", "河北 保定 易县");
        cityCodes.put("130634", "河北 保定 曲阳县");
        cityCodes.put("130635", "河北 保定 蠡县");
        cityCodes.put("130636", "河北 保定 顺平县");
        cityCodes.put("130637", "河北 保定 博野县");
        cityCodes.put("130638", "河北 保定 雄县");
        cityCodes.put("130681", "河北 保定 涿州市");
        cityCodes.put("130682", "河北 保定 定州市");
        cityCodes.put("130683", "河北 保定 安国市");
        cityCodes.put("130684", "河北 保定 高碑店市");

        cityCodes.put("1307", "河北 张家口");
        cityCodes.put("130701", "河北 张家口 市辖区");
        cityCodes.put("130702", "河北 张家口 桥东区");
        cityCodes.put("130703", "河北 张家口 桥西区");
        cityCodes.put("130705", "河北 张家口 宣化区");
        cityCodes.put("130706", "河北 张家口 下花园区");
        cityCodes.put("130721", "河北 张家口 宣化县");
        cityCodes.put("130722", "河北 张家口 张北县");
        cityCodes.put("130723", "河北 张家口 康保县");
        cityCodes.put("130724", "河北 张家口 沽源县");
        cityCodes.put("130725", "河北 张家口 尚义县");
        cityCodes.put("130726", "河北 张家口 蔚县");
        cityCodes.put("130727", "河北 张家口 阳原县");
        cityCodes.put("130728", "河北 张家口 怀安县");
        cityCodes.put("130729", "河北 张家口 万全县");
        cityCodes.put("130730", "河北 张家口 怀来县");
        cityCodes.put("130731", "河北 张家口 涿鹿县");
        cityCodes.put("130732", "河北 张家口 赤城县");
        cityCodes.put("130733", "河北 张家口 崇礼县");

        cityCodes.put("1308", "河北 承德");
        cityCodes.put("130801", "河北 承德 市辖区");
        cityCodes.put("130802", "河北 承德 双桥区");
        cityCodes.put("130803", "河北 承德 双滦区");
        cityCodes.put("130804", "河北 承德 鹰手营子矿区");
        cityCodes.put("130821", "河北 承德 承德县");
        cityCodes.put("130822", "河北 承德 兴隆县");
        cityCodes.put("130823", "河北 承德 平泉县");
        cityCodes.put("130824", "河北 承德 滦平县");
        cityCodes.put("130825", "河北 承德 隆化县");
        cityCodes.put("130826", "河北 承德 丰宁满族自治县");
        cityCodes.put("130827", "河北 承德 宽城满族自治县");
        cityCodes.put("130828", "河北 承德 围场满族蒙古族自治县");

        cityCodes.put("1309", "河北 沧州");
        cityCodes.put("130901", "河北 沧州 市辖区");
        cityCodes.put("130902", "河北 沧州 新华区");
        cityCodes.put("130903", "河北 沧州 运河区");
        cityCodes.put("130921", "河北 沧州 沧县");
        cityCodes.put("130922", "河北 沧州 青县");
        cityCodes.put("130923", "河北 沧州 东光县");
        cityCodes.put("130924", "河北 沧州 海兴县");
        cityCodes.put("130925", "河北 沧州 盐山县");
        cityCodes.put("130926", "河北 沧州 肃宁县");
        cityCodes.put("130927", "河北 沧州 南皮县");
        cityCodes.put("130928", "河北 沧州 吴桥县");
        cityCodes.put("130929", "河北 沧州 献县");
        cityCodes.put("130930", "河北 沧州 孟村回族自治县");
        cityCodes.put("130981", "河北 沧州 泊头市");
        cityCodes.put("130982", "河北 沧州 任丘市");
        cityCodes.put("130983", "河北 沧州 黄骅市");
        cityCodes.put("130984", "河北 沧州 河间市");

        cityCodes.put("1310", "河北 廊坊");

        cityCodes.put("1311", "河北 衡水");

        cityCodes.put("14", "山西");
        cityCodes.put("1401", "山西 太原");
        cityCodes.put("1402", "山西 大同");
        cityCodes.put("1403", "山西 阳泉");
        cityCodes.put("1404", "山西 长治");
        cityCodes.put("1405", "山西 晋城");
        cityCodes.put("1406", "山西 朔州");
        cityCodes.put("1407", "山西 晋中");
        cityCodes.put("1408", "山西 运城");
        cityCodes.put("1409", "山西 忻州");
        cityCodes.put("1410", "山西 临汾");
        cityCodes.put("1411", "山西 吕梁");
        cityCodes.put("1424", "山西 晋中");

        cityCodes.put("15", "内蒙古");
        cityCodes.put("1501", "内蒙古 呼和浩特");
        cityCodes.put("1502", "内蒙古 包头");
        cityCodes.put("1503", "内蒙古 乌海");
        cityCodes.put("1504", "内蒙古 赤峰");
        cityCodes.put("1505", "内蒙古 通辽");
        cityCodes.put("1506", "内蒙古 鄂尔多斯");
        cityCodes.put("1507", "内蒙古 呼伦贝尔");
        cityCodes.put("1508", "内蒙古 巴彦淖尔");
        cityCodes.put("1509", "内蒙古 乌兰察布");
        cityCodes.put("1522", "内蒙古 兴安盟");
        cityCodes.put("1525", "内蒙古 锡林郭勒");
        cityCodes.put("1529", "内蒙古 阿拉善盟");

        cityCodes.put("21", "辽宁");
        cityCodes.put("2101", "辽宁 沈阳");
        cityCodes.put("2102", "辽宁 大连");
        cityCodes.put("2103", "辽宁 鞍山");
        cityCodes.put("2104", "辽宁 抚顺");
        cityCodes.put("2105", "辽宁 本溪");
        cityCodes.put("2106", "辽宁 丹东");
        cityCodes.put("2107", "辽宁 锦州");
        cityCodes.put("2108", "辽宁 营口");
        cityCodes.put("2109", "辽宁 阜新");
        cityCodes.put("2110", "辽宁 辽阳");
        cityCodes.put("2111", "辽宁 盘锦");
        cityCodes.put("2112", "辽宁 铁岭");
        cityCodes.put("2113", "辽宁 朝阳");
        cityCodes.put("2114", "辽宁 葫芦岛");

        cityCodes.put("22", "吉林");
        cityCodes.put("2200", "吉林");
        cityCodes.put("2201", "吉林 长春");
        cityCodes.put("2202", "吉林 吉林");
        cityCodes.put("2203", "吉林 四平");
        cityCodes.put("2204", "吉林 辽源");
        cityCodes.put("2205", "吉林 通化");
        cityCodes.put("2206", "吉林 白山");
        cityCodes.put("2207", "吉林 松原");
        cityCodes.put("2208", "吉林 白城");
        cityCodes.put("2224", "吉林 延边州");

        cityCodes.put("23", "黑龙江");
        cityCodes.put("2301", "黑龙江 哈尔滨");
        cityCodes.put("2302", "黑龙江 齐齐哈尔");
        cityCodes.put("2303", "黑龙江 鸡西");
        cityCodes.put("2304", "黑龙江 鹤岗");
        cityCodes.put("2305", "黑龙江 双鸭山");
        cityCodes.put("2306", "黑龙江 大庆");
        cityCodes.put("2307", "黑龙江 伊春");
        cityCodes.put("2308", "黑龙江 佳木斯");
        cityCodes.put("2309", "黑龙江 七台河");
        cityCodes.put("2310", "黑龙江 牡丹江");
        cityCodes.put("2311", "黑龙江 黑河");
        cityCodes.put("2312", "黑龙江 绥化");
        cityCodes.put("2321", "黑龙江 哈尔滨");
        cityCodes.put("2327", "黑龙江 大兴安岭");

        cityCodes.put("31", "上海");
        cityCodes.put("3100", "上海");

        cityCodes.put("32", "江苏");
        cityCodes.put("3201", "江苏 南京");
        cityCodes.put("3202", "江苏 无锡");
        cityCodes.put("3203", "江苏 徐州");
        cityCodes.put("3204", "江苏 常州");
        cityCodes.put("3205", "江苏 苏州");
        cityCodes.put("3206", "江苏 南通");
        cityCodes.put("3207", "江苏 连云港");
        cityCodes.put("3208", "江苏 淮安");
        cityCodes.put("3209", "江苏 盐城");
        cityCodes.put("3210", "江苏 扬州");
        cityCodes.put("3211", "江苏 镇江");
        cityCodes.put("3212", "江苏 泰州");

        cityCodes.put("33", "浙江");
        cityCodes.put("3301", "浙江 杭州");
        cityCodes.put("3302", "浙江 宁波");
        cityCodes.put("3303", "浙江 温州");
        cityCodes.put("3304", "浙江 嘉兴");
        cityCodes.put("3305", "浙江 湖州");
        cityCodes.put("3306", "浙江 绍兴");
        cityCodes.put("3307", "浙江 金华");
        cityCodes.put("3308", "浙江 衢州");
        cityCodes.put("3309", "浙江 舟山");
        cityCodes.put("3310", "浙江 台州");
        cityCodes.put("3311", "浙江 丽水");

        cityCodes.put("34", "安徽");
        cityCodes.put("3401", "安徽 合肥");
        cityCodes.put("3402", "安徽 芜湖");
        cityCodes.put("3403", "安徽 蚌埠");
        cityCodes.put("3404", "安徽 淮南");
        cityCodes.put("3405", "安徽 马鞍山");
        cityCodes.put("3406", "安徽 淮北");
        cityCodes.put("3407", "安徽 铜陵");
        cityCodes.put("3408", "安徽 安庆");
        cityCodes.put("3410", "安徽 黄山");
        cityCodes.put("3411", "安徽 滁州");
        cityCodes.put("3412", "安徽 阜阳");
        cityCodes.put("3413", "安徽 宿州");
        cityCodes.put("3415", "安徽 六安");
        cityCodes.put("3416", "安徽 亳州");
        cityCodes.put("3417", "安徽 池州");
        cityCodes.put("3418", "安徽 宣城");
        cityCodes.put("3422", "安徽 宿县");

        cityCodes.put("35", "福建");
        cityCodes.put("3501", "福建 福州");
        cityCodes.put("3502", "福建 厦门");
        cityCodes.put("3503", "福建 莆田");
        cityCodes.put("3504", "福建 三明");
        cityCodes.put("3505", "福建 泉州");
        cityCodes.put("3506", "福建 漳州");
        cityCodes.put("3507", "福建 南平");
        cityCodes.put("3508", "福建 龙岩");
        cityCodes.put("3509", "福建 宁德");

        cityCodes.put("36", "江西");
        cityCodes.put("3601", "江西 南昌");
        cityCodes.put("3602", "江西 景德镇");
        cityCodes.put("3603", "江西 萍乡");
        cityCodes.put("3604", "江西 九江");
        cityCodes.put("3605", "江西 新余");
        cityCodes.put("3606", "江西 鹰潭");
        cityCodes.put("3607", "江西 赣州");
        cityCodes.put("3608", "江西 吉安");
        cityCodes.put("3609", "江西 宜春");
        cityCodes.put("3610", "江西 抚州");
        cityCodes.put("3611", "江西 上饶");

        cityCodes.put("37", "山东");
        cityCodes.put("3701", "山东 济南");
        cityCodes.put("3702", "山东 青岛");
        cityCodes.put("3703", "山东 淄博");
        cityCodes.put("3704", "山东 枣庄");
        cityCodes.put("3705", "山东 东营");
        cityCodes.put("3706", "山东 烟台");
        cityCodes.put("3707", "山东 潍坊");
        cityCodes.put("3708", "山东 济宁");
        cityCodes.put("3709", "山东 泰安");
        cityCodes.put("3710", "山东 威海");
        cityCodes.put("3711", "山东 日照");
        cityCodes.put("3712", "山东 莱芜");
        cityCodes.put("3713", "山东 临沂");
        cityCodes.put("3714", "山东 德州");
        cityCodes.put("3715", "山东 聊城");
        cityCodes.put("3716", "山东 滨州");
        cityCodes.put("3717", "山东 菏泽");

        cityCodes.put("41", "河南");
        cityCodes.put("4101", "河南 郑州");
        cityCodes.put("4102", "河南 开封");
        cityCodes.put("4103", "河南 洛阳");
        cityCodes.put("4104", "河南 平顶山");
        cityCodes.put("4105", "河南 安阳");
        cityCodes.put("4106", "河南 鹤壁");
        cityCodes.put("4107", "河南 新乡");
        cityCodes.put("4108", "河南 焦作");
        cityCodes.put("4109", "河南 濮阳");
        cityCodes.put("4110", "河南 许昌");
        cityCodes.put("4111", "河南 漯河");
        cityCodes.put("4112", "河南 三门峡");
        cityCodes.put("4113", "河南 南阳");
        cityCodes.put("4114", "河南 商丘");
        cityCodes.put("4115", "河南 信阳");
        cityCodes.put("4116", "河南 周口");
        cityCodes.put("4117", "河南 驻马店");

        cityCodes.put("42", "湖北");
        cityCodes.put("4201", "湖北 武汉");
        cityCodes.put("4202", "湖北 黄石");
        cityCodes.put("4203", "湖北 十堰");
        cityCodes.put("4205", "湖北 宜昌");
        cityCodes.put("4206", "湖北 襄阳");
        cityCodes.put("4207", "湖北 鄂州");
        cityCodes.put("4208", "湖北 荆门");
        cityCodes.put("4209", "湖北 孝感");
        cityCodes.put("4210", "湖北 荆州");
        cityCodes.put("4211", "湖北 黄冈");
        cityCodes.put("4212", "湖北 咸宁");
        cityCodes.put("4213", "湖北 随州");
        cityCodes.put("4228", "湖北 恩施州");

        cityCodes.put("43", "湖南");
        cityCodes.put("4301", "湖南 长沙");
        cityCodes.put("4302", "湖南 株洲");
        cityCodes.put("4303", "湖南 湘潭");
        cityCodes.put("4304", "湖南 衡阳");
        cityCodes.put("4305", "湖南 邵阳");
        cityCodes.put("4306", "湖南 岳阳");
        cityCodes.put("4307", "湖南 常德");
        cityCodes.put("4309", "湖南 益阳");
        cityCodes.put("4310", "湖南 郴州");
        cityCodes.put("4311", "湖南 永州");
        cityCodes.put("4312", "湖南 怀化");
        cityCodes.put("4313", "湖南 娄底");
        cityCodes.put("4331", "湖南 湘西州");

        cityCodes.put("44", "广东");
        cityCodes.put("4401", "广东 广州");
        cityCodes.put("4402", "广东 韶关");
        cityCodes.put("4403", "广东 深圳");
        cityCodes.put("4404", "广东 珠海");
        cityCodes.put("4405", "广东 汕头");
        cityCodes.put("4406", "广东 佛山");
        cityCodes.put("4407", "广东 江门");
        cityCodes.put("4408", "广东 湛江");
        cityCodes.put("4409", "广东 茂名");
        cityCodes.put("4412", "广东 肇庆");
        cityCodes.put("4413", "广东 惠州");
        cityCodes.put("4414", "广东 梅州");
        cityCodes.put("4415", "广东 汕尾");
        cityCodes.put("4416", "广东 河源");
        cityCodes.put("4417", "广东 阳江");
        cityCodes.put("4418", "广东 清远");
        cityCodes.put("4419", "广东 东莞");
        cityCodes.put("4420", "广东 中山");
        cityCodes.put("4451", "广东 潮州");
        cityCodes.put("4452", "广东 揭阳");
        cityCodes.put("4453", "广东 云浮");

        cityCodes.put("45", "广西");
        cityCodes.put("4501", "广西 南宁");
        cityCodes.put("4502", "广西 柳州");
        cityCodes.put("4503", "广西 桂林");
        cityCodes.put("4504", "广西 梧州");
        cityCodes.put("4505", "广西 北海");
        cityCodes.put("4506", "广西 防城港");
        cityCodes.put("4507", "广西 钦州");
        cityCodes.put("4508", "广西 贵港");
        cityCodes.put("4509", "广西 玉林");
        cityCodes.put("4510", "广西 百色");
        cityCodes.put("4511", "广西 贺州");
        cityCodes.put("4512", "广西 河池");
        cityCodes.put("4513", "广西 来宾");
        cityCodes.put("4514", "广西 崇左");
        cityCodes.put("4524", "广西 贺州");

        cityCodes.put("46", "海南");
        cityCodes.put("4601", "海南 海口");
        cityCodes.put("4602", "海南 三亚");
        cityCodes.put("4690", "海南 儋州");
        cityCodes.put("469001", "海南 五指山");
        cityCodes.put("469002", "海南 琼海");
        cityCodes.put("469003", "海南 儋州");
        cityCodes.put("469005", "海南 文昌");
        cityCodes.put("469006", "海南 万宁");
        cityCodes.put("469007", "海南 东方");

        cityCodes.put("50", "重庆");
        cityCodes.put("5000", "重庆");
        cityCodes.put("500000", "重庆");

        cityCodes.put("51", "四川");
        cityCodes.put("5101", "四川 成都");
        cityCodes.put("5103", "四川 自贡");
        cityCodes.put("5104", "四川 攀枝花");
        cityCodes.put("5105", "四川 泸州");
        cityCodes.put("5106", "四川 德阳");
        cityCodes.put("5107", "四川 绵阳");
        cityCodes.put("5108", "四川 广元");
        cityCodes.put("5109", "四川 遂宁");
        cityCodes.put("5110", "四川 内江");
        cityCodes.put("5111", "四川 乐山");
        cityCodes.put("5113", "四川 南充");
        cityCodes.put("5114", "四川 眉山");
        cityCodes.put("5115", "四川 宜宾");
        cityCodes.put("5116", "四川 广安");
        cityCodes.put("5117", "四川 达州");
        cityCodes.put("5119", "四川 巴中");
        cityCodes.put("5120", "四川 资阳");
        cityCodes.put("5134", "四川 凉山州");

        cityCodes.put("52", "贵州");
        cityCodes.put("5201", "贵州 贵阳");
        cityCodes.put("5202", "贵州 六盘水");
        cityCodes.put("5203", "贵州 遵义");
        cityCodes.put("5204", "贵州 安顺");
        cityCodes.put("5205", "贵州 毕节");
        cityCodes.put("5206", "贵州 铜仁");
        cityCodes.put("5223", "贵州 黔西南州");
        cityCodes.put("5226", "贵州 黔东南州");
        cityCodes.put("5227", "贵州 黔南州");

        cityCodes.put("53", "云南");
        cityCodes.put("5301", "云南 昆明");
        cityCodes.put("5303", "云南 曲靖");
        cityCodes.put("5304", "云南 玉溪");
        cityCodes.put("5305", "云南 保山");
        cityCodes.put("5306", "云南 昭通");
        cityCodes.put("5307", "云南 丽江");
        cityCodes.put("5308", "云南 普洱");
        cityCodes.put("5309", "云南 临沧");
        cityCodes.put("5323", "云南 楚雄州");
        cityCodes.put("5325", "云南 红河州");
        cityCodes.put("5326", "云南 文山州");
        cityCodes.put("5328", "云南 西双版纳");
        cityCodes.put("5329", "云南 大理州");
        cityCodes.put("5331", "云南 德宏州");
        cityCodes.put("5333", "云南 怒江州");
        cityCodes.put("5334", "云南 迪庆州");

        cityCodes.put("54", "西藏");
        cityCodes.put("5401", "西藏 拉萨");
        cityCodes.put("5421", "西藏 昌都");
        cityCodes.put("5422", "西藏 山南");
        cityCodes.put("5423", "西藏 日喀则");
        cityCodes.put("5426", "西藏 林芝");

        cityCodes.put("61", "陕西");
        cityCodes.put("6101", "陕西 西安");
        cityCodes.put("6102", "陕西 铜川");
        cityCodes.put("6103", "陕西 宝鸡");
        cityCodes.put("6104", "陕西 咸阳");
        cityCodes.put("6105", "陕西 渭南");
        cityCodes.put("6106", "陕西 延安");
        cityCodes.put("6107", "陕西 汉中");
        cityCodes.put("6108", "陕西 榆林");
        cityCodes.put("6109", "陕西 安康");
        cityCodes.put("6110", "陕西 商洛");

        cityCodes.put("62", "甘肃");
        cityCodes.put("6201", "甘肃 兰州");
        cityCodes.put("6202", "甘肃 嘉峪关");
        cityCodes.put("6203", "甘肃 金昌");
        cityCodes.put("6204", "甘肃 白银");
        cityCodes.put("6205", "甘肃 天水");
        cityCodes.put("6206", "甘肃 武威");
        cityCodes.put("6207", "甘肃 张掖");
        cityCodes.put("6208", "甘肃 平凉");
        cityCodes.put("6209", "甘肃 酒泉");
        cityCodes.put("6210", "甘肃 庆阳");
        cityCodes.put("6211", "甘肃 定西");
        cityCodes.put("6212", "甘肃 陇南");
        cityCodes.put("6229", "甘肃 临夏州");
        cityCodes.put("6230", "甘肃 甘南州");

        cityCodes.put("63", "青海");
        cityCodes.put("6301", "青海 西宁");
        cityCodes.put("6321", "青海 海东");
        cityCodes.put("6322", "青海 海北州");
        cityCodes.put("6323", "青海 黄南州");
        cityCodes.put("6325", "青海 海南州");
        cityCodes.put("6326", "青海 果洛州");
        cityCodes.put("6327", "青海 玉树州");
        cityCodes.put("6328", "青海 海西州");

        cityCodes.put("64", "宁夏");
        cityCodes.put("6401", "宁夏 银川");
        cityCodes.put("6402", "宁夏 石嘴山");
        cityCodes.put("6403", "宁夏 吴忠");
        cityCodes.put("6404", "宁夏 固原");
        cityCodes.put("6405", "宁夏 中卫");

        cityCodes.put("65", "新疆");
        cityCodes.put("6501", "新疆 乌鲁木齐");
        cityCodes.put("6502", "新疆 克拉玛依");
        cityCodes.put("6521", "新疆 吐鲁番");
        cityCodes.put("6522", "新疆 哈密");
        cityCodes.put("6523", "新疆 昌吉州");
        cityCodes.put("6527", "新疆 博尔塔拉州");
        cityCodes.put("6528", "新疆 巴音郭楞");
        cityCodes.put("6530", "新疆 克孜勒苏州");
        cityCodes.put("6531", "新疆 喀什地区");
        cityCodes.put("6532", "新疆 和田地区");
        cityCodes.put("6540", "新疆 伊犁州");
        cityCodes.put("6542", "新疆 塔城地区");
        cityCodes.put("6590", "新疆 石河子");
    }


}
